package com.kuns.subject.domian.convert;

import com.kuns.subject.domian.entity.SubjectCategoryBO;
import com.kuns.subject.infra.basic.entity.SubjectCategory;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

import java.util.List;

@Mapper
public interface SubjectCategoryConverter {
    /**
     * 接口编程
     *
     * 通过反射为该接口生成一个实现类，并返回其实例。
     * 这样在使用时，开发者可以通过接口 SubjectCategoryConverter 进行调用，而不需要关心具体的实现细节。
     */
    SubjectCategoryConverter INSTANCE = Mappers.getMapper(SubjectCategoryConverter.class);

    /**
     * convertBoToCategory 方法定义了如何将 SubjectCategoryBO 对象转换为 SubjectCategory 对象。
     * 具体的转换逻辑会在编译时自动生成，不需要手动实现。
     * @param subjectCategoryBO
     * @return
     */
    SubjectCategory convertBoToCategory(SubjectCategoryBO subjectCategoryBO);

    List<SubjectCategoryBO> convertCategoryListToBoList(List<SubjectCategory> subjectCategoryList);

}
